The use of display screens for gaming tablets is known. For example, multiple players may wish to use a laptop computer screen to display a game or other non-game information to different viewers. Systems are known that allow the rotation of the image of, for example, a 90°, 180°, and 270° rotation so that the gaming tablet or screen may be oriented toward different viewers around a table, so that each viewer can view the display in a proper orientation with respect to their position about the table.
One example of such a system is described in U.S. Pat. No. 5,973,664 entitled “Parameterized Image Orientation for Computer Display”. With this system, a software driver, using for example a host processor, uses the same software instructions for each orientation mode. The driver uses parameters to determine where each successive pixel goes in a display memory. For example, the driver (i.e., the host processor) moves pixels from a source memory to display memory using an x and y parameter to rotate an image on a pixel by pixel basis by stepping seriatim through each pixel of the source image and moving the pixel to a corresponding area in display memory using the x and y parameter. The rotation is made directly on a line by line pixel by pixel basis into a display memory. Such a system may require large amounts of host processing time since the calculation of each pixel location is performed on a pixel by pixel basis by stepping, seriatim, through each pixel in a source image and moving the pixel to a display memory based on a single x and y increment value, typically by a host processor.
Other drivers are known that modify image information before putting it into display memory to produce a desired orientation on a computer display. Typically, the code used to effect the orientation of an image in one mode is not used to effect the orientation in another mode. Drivers typically use a host processor to carry out the rotation and thus can unnecessarily overburden the host and decrease performance. With increasing image complexities and the desire to speed up the processing of a host processor, it would be desirable to provide a more efficient mechanism for rotating an image on a display screen.
Also, three dimensional rendering engine are known that receive drawing commands that include primitive information and rendering 3D images. Such 3D rendering engines receive as part of the vertex information, primitive information such as vertex coordinates, color values for each vertex, texture coordinates for one or more textures that are applied to a primitive, specular information, and other information. However, such 3D rendering engines are not known to rotate rendered images. Given their presence in many display systems, it would be desirable to utilize their capability to facilitate image rotation.
Accordingly, a need exists for an improved image rotation apparatus and method.